Laravel Nova - Trimmed Field Pattern
In a Laravel Nova based project I had a list of domains that
sometimes grew to take up most of the row it was in. I discovered the following
pattern to show a limited field on the index view and a full field on the edit
view using a combination of onlyOnIndex()
and hideFromIndex()
:
Text::make('Domains', 'additional_domains')
->onlyOnIndex()
->displayUsing(function ($value) {
return str_limit($value, '100', '...');
})
->withMeta(['extraAttributes' => [
'readonly' => true
]]),
and then a second field that is hidden from the index using hideFromIndex()
:
Text::make('SSL Domains', 'ssl_additional_domains')
->hideFromIndex()
->withMeta(['extraAttributes' => [
'readonly' => true
]]),
The fields are automatically populated by the system and are shown read-only to
the user so this really helped to tidy up the UI. Hopefully this helps you out
if you need to limit a field you’re displaying when using Laravel Nova.